﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SimhoppKjellsFavoriterVT13
{
    public delegate void DelegateNewContestant(String name, DateTime birthdate, Gender g, String nationality, int ID);
    public delegate void DelegateEditContestant(String name, DateTime birthdate, Gender g, String nationality, int ID);

    public delegate void DelegateNewJump(int contestantID, float jumpDif, string jumpID, List<Judge> judges);
    public delegate void DelegateEditJump(int contestantID, int jump, List<float> judgeValues);
    public delegate void DelegateDeleteJump(int contestantID, int jump);

    public delegate void DelegateNewContest();
    public delegate void DelegateDeleteContestant(int ID);
    public delegate void DelegateNewJudge(String name, DateTime birthdate, Gender g, String nationality,int ID);
    public delegate void DelegateEditJudge(String name, DateTime birthdate, Gender g, String nationality, int ID);
    public delegate void DelegateDeleteJudge(int ID);
    public delegate void DelegateSaveToFile(string filePath);
    public delegate void DelegateReadFromFile(string filePath);
    public delegate void DelegatePrintContestants();
    public delegate void DelegatePrintJudges();
    public delegate void DelegatePrintResult();

    public interface IMain
    {
        void SetContest(Contest c);

        event DelegateEditContestant EventEditContestant;
        event DelegateNewContestant EventNewContestant;
        event DelegateDeleteContestant EventDeleteContestant;
        event DelegateEditJudge EventEditJudge;
        event DelegateNewJudge EventNewJudge;
        event DelegateNewContest EventNewContest;
        event DelegateDeleteJudge EventDeleteJudge;
        event DelegateSaveToFile EventSaveToFile;
        event DelegateReadFromFile EventReadFromFile;
        event DelegateNewJump EventNewJump;
        event DelegateEditJump EventEditJump;
        event DelegateDeleteJump EventDeleteJump;
        event DelegatePrintContestants EventPrintContestant;
        event DelegatePrintJudges EventPrintJudges;
        event DelegatePrintResult EventPrintResult;
    }
}